본문으로 건너뛰기

가운데 정렬에 관하여

정보

CSS를 통해 해당 영역을 정렬하는 법을 정리해보았습니다.


📏 수직 가운데 정렬

📎 margin : 0 auto;

노트
  • marign을 이용하여 양쪽 여백을 auto를 두어 브라우저에서 자동으로 잡아주게끔 합니다.
  • <div> 태그와 같이 감싸주는 태그 (block 영역의 태그) 내에서 margin : 0 auto;를 사용해야 합니다.
라이브 에디터
결과
Loading...

📎 justify-content : center;

노트
  • display : flexjustify-content를 이용하여 수직 가운데 정렬을 맞춰줍니다.
  • flex-directionrow일 때만 가능합니다.
라이브 에디터
결과
Loading...

📎 align-items : center;

노트
  • display : flexalign-items를 이용하여 수직 가운데 정렬을 맞춰줍니다.
  • flex 방향이 세로 방향일 때 가능합니다.
  • align-self 속성을 통해 특정 영역을 따로 정할 수 있습니다.

    align-selfalign-items보다 우선적으로 스타일이 적용됩니다.

라이브 에디터
결과
Loading...

📎 text-align : center;

노트
  • text-align을 이용하여 텍스트 태그 (inline 영역의 태그)를 가운데 정렬을 도와줍니다.
  • 이 외의 블록 영역의 태그는 동작하지 않습니다.
라이브 에디터
결과
Loading...

📏 수평 가운데 정렬

📎 vertical-align : middle;

노트
  • inline 요소를 가운데 정렬할 때 사용합니다.
  • 부모 요소에 따라 정렬 방식이 달라지며, <div> 태그와 같은 요소는 적용되지 않습니다.
  • 상대적인 정렬방식이라 어려운 방법에 속합니다.

    line-height, font-size 등 인라인에 속한 다른 요소들에 따라 정렬이 변합니다.

라이브 에디터
결과
Loading...

📎 padding

노트
  • padding 값을 이용하여 수평 가운데 정렬을 하듯이 보여줄 수 있습니다.
    • 실제로는 수평 가운데 정렬이 아닌 위아래 여백을 추가해주었습니다.
    • 이는 내용에 따라 정렬여부가 달라집니다.

      <div> 태그는 margin을 사용해야 합니다.

라이브 에디터
결과
Loading...
라이브 에디터
결과
Loading...
라이브 에디터
결과
Loading...

📎 line-height = height;

노트
  • 텍스트 한 줄에 한해서 수평 가운데 정렬이 가능합니다.
  • text-align : center;를 통해 수직 가운데 정렬line-height를 통해서 줄간격을 강제로 height와 같게 만들어줍니다.
  • line-height 값은 부모요소의 height 값을 따르면 됩니다.
    • 혹은, 자기 자체의 height값을 line-height 값과 동일하게 설정하면 됩니다.
라이브 에디터
결과
Loading...
라이브 에디터
결과
Loading...

📎 align-items : center;

노트
  • display : flexalign-items를 이용하여 수평 가운데 정렬을 맞춰줍니다.
  • align-self 속성을 통해 특정 영역을 따로 정할 수 있습니다.

    align-selfalign-items보다 우선적으로 스타일이 적용됩니다.

라이브 에디터
결과
Loading...

📏 수직/수평 가운데 정렬

📎 translate: transform(-50%, -50%);

노트
  • position 값을 이용해 브라우저 내에서 위치를 잡아줍니다.
  • top과 left값50%를 우선 맞춰준 후, 기준점으로 정렬하기 위해 transform을 이용합니다.
  • 블록 영역 및 인라인 영역의 태그 모두 동작합니다.
라이브 에디터
결과
Loading...
주의
  • 텍스트 영역은 가운데 정렬이 맞춰지나, 텍스트 자체의 정렬이 필요합니다.
  • text-align : center를 추가해야 합니다.
라이브 에디터
결과
Loading...
라이브 에디터
결과
Loading...

📎 justify-content + align-items

노트
  • display : flex를 이용해 수직 가운데 정렬수평 가운데 정렬을 진행합니다.
  • 수직 가운데 정렬justify-content : center, 수평 가운데 정렬align-items : center를 통해 이루어집니다.
라이브 에디터
결과
Loading...

📎 place-items : center;

노트
  • display : grid를 이용해 규격화하여 가운데 정렬을 해줍니다.
  • place-items를 이용하여 center에 맞춰줍니다.
정보

place-items = align-items + justify-items

라이브 에디터
결과
Loading...
라이브 에디터
결과
Loading...

🧾 정리

  • block 요소margin, width, height이 적용되는 반면, inline 요소그렇지 않다는 점을 인지해야 합니다.
  • 특정 태그에 직접 정렬을 하는 것보단, 감싸는 태그를 이용하여 정렬하는 방식에 익숙해져야 합니다.

    실제로 특정 태그에 직접 정렬하는 경우는 text-align만 대표적입니다.

  • 대부분 가운데 정렬을 할 땐, display : flex를 이용하는 것이 좋습니다.
    • justify-content : centeralign-items : center를 이용합니다.
    • 웬만한 경우라면 대부분 정렬이 가능합니다.
  • positiontransform을 이용한 가운데 정렬은 주변 영역에 구애받지 않을 때 사용하면 좋습니다.
    • position을 통하여 위치를 강제로 기준을 정하고, 임의값으로 위치를 정할 수 있기 때문입니다.
    • 텍스트 자체의 정렬은 적용되지 않습니다.
  • display : grid를 이용해 가운데 정렬을 만들 수 있으며, 좀더 규격화된 홈페이지를 만들 때 유용합니다.